﻿using System;
using System.Collections.Generic;
using System.Text;

namespace PCR.Base
{
    /// <summary>
    /// Printing setting interface
    /// </summary>
    public interface IPrintingSetting
    {
        /// <summary>
        /// Get or set the report title
        /// </summary>
        string Title { get; set; }
        
        /// <summary>
        /// Get or set the report project name
        /// </summary>
        string ProjectName { get; set; }
        
        /// <summary>
        /// Get or set the medical branch name
        /// </summary>
        string MedicalBranch { get; set; }
            
        /// <summary>
        /// Get or set the bed number
        /// </summary>
        string BedNo { get; set; }

        /// <summary>
        /// Get or set the sender doctor
        /// </summary>
        string SenderDoctor { get; set; }

        /// <summary>
        /// Get or set the diagnosis information
        /// </summary>
        string Diagnosis { get; set; }

        /// <summary>
        /// Get or set the memo information
        /// </summary>
        string Memo { get; set; }

        /// <summary>
        /// Get or set the checker signature
        /// </summary>
        string CheckerSignature { get; set; }
        
        /// <summary>
        /// Get or set the auditor signature
        /// </summary>
        string AuditorSignature { get; set; }

        /// <summary>
        /// Get or set the note information
        /// </summary>
        string Note { get; set; }

        /// <summary>
        /// Get or set the question information
        /// </summary>
        string Question { get; set; }
    }
    
    /// <summary>
    /// Application configuration manager,
    /// Contain all the global setting and resource loading
    /// </summary>
    public interface IConfigManager
    {
        string GetString(string name);

        object GetObject(string name);

        /// <summary>
        /// Get the max value
        /// </summary>
        double MaxValue { get; }

        /// <summary>
        /// Get the min value
        /// </summary>
        double MinValue { get; }

        /// <summary>
        /// Get or set the skin name
        /// </summary>
        string Skin { get; set; }

        /// <summary>
        /// Get the software name
        /// </summary>
        string SoftwareName { get; }

        /// <summary>
        /// Get or set the max CT value
        /// </summary>
        double MaxCTVal { get; }

        /// <summary>
        /// Get or set the min CT value
        /// </summary>
        double MinCTVal { get; }

        /// <summary>
        /// Get the global double digital precision count
        /// Use Math.Round(value, DigitialPrecision);
        /// </summary>
        int DigitialPrecision { get; }

        /// <summary>
        /// Get or set the printing setting
        /// </summary>
        IPrintingSetting PrintingSetting { get; set; }
    }
}
